/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.practica.bean;

import edu.practica.dao.UsuarioDAO;
import edu.practica.model.Usuario;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author jssepulveda
 */
@ManagedBean
@SessionScoped
public class UsuarioBean implements Serializable {
    private Usuario usuario; 
    
    @EJB
    private UsuarioDAO usuarioDAO;  
    
    public UsuarioBean() {
        usuario = new Usuario();       
    }
    
    @PostConstruct
    public void init() {        
        
    }
    
    public void registrar() {
        try {
            System.out.println("registrando...");
            System.out.println(usuarioDAO.exist(usuario));
           if(!usuarioDAO.exist(usuario)) {
               System.out.println("usuario nuevo, registrando...");
               usuarioDAO.registrar(usuario);
           }else{
               System.out.println("usuario Existente");
           }            
            
            //reiniciamos el pojo, para que los campos del formulario queden en blanco
            usuario = new Usuario();
        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null, 
                    new FacesMessage("Error al intentar registrar el usuario, usuario existente."));
            e.printStackTrace();
        }
    }
    
    public Usuario getUsuario() {
        return usuario;
    }
    
     public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    
    /*
    public void resetearProducto() {
        this.producto = new Producto();
    }
    
    public void eliminarProducto(Producto producto) {
        try {
            productoDAO.eliminar(producto);
            
            //consulto todos los tipos de productos para actualizar la lista
            listProductos = productoDAO.listProductos();
            
        } catch (Exception e) {
            FacesContext.getCurrentInstance().addMessage(null, 
                    new FacesMessage("Error al intentar registrar el tipo de producto."));
            e.printStackTrace();
        }
    }
    
    
    public void seleccionarProducto(Producto tp) {
        this.producto = tp;
    }
    
    
    public Producto getProducto() {
        return producto;
    }

    public void setProducto(Producto Producto) {
        this.producto = Producto;
    }

    public List<Producto> getListProductos() {
        return listProductos;
    }

    public void setListProductos(List<Producto> listProductos) {
        this.listProductos = listProductos;
    }

    public List<TipoProducto> getListTiposProductos() {
        return listTiposProductos;
    }

    public void setListTiposProductos(List<TipoProducto> listTiposProductos) {
        this.listTiposProductos = listTiposProductos;
    }*/
    
}
